// Put your custom SCSS code here
* {
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, .navbar-brand {
  font-family: Quicksand, sans-serif;
  font-weight: 700;
}

[data-bs-theme="dark"] .only-light {
    display: none;
}

[data-bs-theme="light"] .only-dark {
    display: none;
}


.homepage-features {
    .row {
        max-width: 1400px;
        margin: 0 auto;
    }
}

// Improved text alignment and spacing
.text-center.text-lg-start {
    @media (min-width: 992px) {
        padding-right: 2rem;
    }
}


// Learn page styling
.learn-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 3rem 1rem;
}

.learn-header {
    text-align: center;
    margin-bottom: 4rem;
}

.learn-main-title {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--bs-body-color);
}

.learn-subtitle {
    font-size: 1.25rem;
    color: var(--bs-body-color-secondary);
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.learn-section {
    margin-bottom: 4rem;
}

.learn-section:last-child {
    margin-bottom: 0;
}

.learn-section-title {
    text-align: center;
    font-size: 2rem;
    font-weight: 600;
    margin-bottom: 3rem;
    color: var(--bs-body-color);
}

.learn-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    justify-items: center;
}

.learn-card {
    display: flex;
    flex-direction: column;
    padding: 2rem;
    border-radius: 0.75rem;
    transition: all 0.3s ease;
    text-decoration: none;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    min-height: 280px;
    width: 100%;
    max-width: 350px;
    text-align: center;
    color: inherit;
    cursor: pointer;
    position: relative;
    overflow: hidden;
}

.learn-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
    text-decoration: none;
    color: inherit;
    border-color: var(--bs-primary);
}

.learn-card:focus {
    outline: 2px solid var(--bs-primary);
    outline-offset: 2px;
}

.learn-card-icon {
    margin: 0 auto 0;
    color: var(--bs-primary);
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100px;
    height: 100px;
}

.learn-card h3 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: var(--bs-body-color);
    margin-top: 0;
}

.learn-card-secondary {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--bs-gray-600);
    margin-bottom: 1rem;
}



.learn-card p {
    font-size: 0.95rem;
    line-height: 1.6;
    margin-bottom: 2rem;
    flex-grow: 1;
    color: var(--bs-body-color-secondary);
}


// Dark theme support for learn cards
[data-bs-theme="dark"] .learn-card {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .learn-card:hover {
    border-color: var(--bs-primary);
}


// Responsive grid for learn page
@media (max-width: 767.98px) {
    .learn-container {
        padding: 2rem 1rem;
    }

    .learn-header {
        margin-bottom: 3rem;
    }

    .learn-main-title {
        font-size: 2.5rem;
    }

    .learn-subtitle {
        font-size: 1.1rem;
    }

    .learn-section-title {
        font-size: 1.5rem;
        margin-bottom: 2rem;
    }

    .learn-row {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .learn-card {
        padding: 1.5rem;
        min-height: 240px;
        max-width: none;
    }
}

@media (min-width: 768px) and (max-width: 1199.98px) {
    .learn-row {
        grid-template-columns: repeat(2, 1fr);
    }

    .learn-section:first-child .learn-row {
        grid-template-columns: repeat(2, 1fr);
    }

    .learn-section:first-child .learn-row .learn-card:nth-child(3) {
        grid-column: 1 / -1;
        justify-self: center;
    }
}

// Quickstart page styling
.quickstart-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 3rem 1rem;
}

.quickstart-header {
    text-align: center;
    margin-bottom: 3rem;
}

.quickstart-main-title {
    font-size: 3rem;
    font-weight: 700;
    margin-bottom: 1rem;
    color: var(--bs-body-color);
}

.quickstart-subtitle {
    font-size: 1.25rem;
    color: var(--bs-body-color-secondary);
    max-width: 600px;
    margin: 0 auto;
    line-height: 1.6;
}

.quickstart-content {
    font-size: 1.1rem;
    line-height: 1.8;
}

// Hide footer banner on quickstart page too
body.quickstart .event-driven-banner {
    display: none;
}

// Responsive styling for quickstart
@media (max-width: 767.98px) {
    .quickstart-container {
        padding: 2rem 1rem;
    }

    .quickstart-header {
        margin-bottom: 2rem;
    }

    .quickstart-main-title {
        font-size: 2.5rem;
    }

    .quickstart-subtitle {
        font-size: 1.1rem;
    }
}

// Responsive improvements
@media (max-width: 991.98px) {
    .display-5 {
        font-size: 2rem;
    }

    .text-center.text-lg-start {
        text-align: center !important;
        padding-right: 0;
    }
}

// Pub/Sub Logos Collage Styling
.pubsub-logos-container {
    padding: 2rem 0;
}

.pubsub-logos-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 2rem;
    max-width: 900px;
    margin: 0 auto;
    align-items: center;
    justify-content: center;
}

.pubsub-logo-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    transition: all 0.3s ease;
    padding: 1rem;
    border-radius: 0.75rem;
    text-decoration: none;
    color: inherit;
    flex: 0 0 120px;

    img {
        width: 60px;
        height: 60px;
        margin-bottom: 0.75rem;
        transition: all 0.3s ease;
    }

    span {
        font-size: 0.9rem;
        font-weight: 600;
        color: var(--bs-body-color-secondary);
        transition: all 0.3s ease;
    }

    &:hover {
        background: rgba(var(--bs-primary-rgb), 0.05);
        text-decoration: none;
        color: inherit;

        img {
        }

        span {
            color: var(--bs-primary);
        }
    }

    &:focus {
        outline: 2px solid var(--bs-primary);
        outline-offset: 2px;
        text-decoration: none;
        color: inherit;
    }
}

// Dark theme support for pub/sub logos
[data-bs-theme="dark"] .pubsub-logo-item {
    &:hover {
        background: rgba(var(--bs-primary-rgb), 0.1);
    }
}

// Responsive adjustments for pub/sub logos
@media (max-width: 767.98px) {
    .pubsub-logos-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 1.5rem;
        max-width: 100%;
    }

    .pubsub-logo-item {
        padding: 0.75rem;

        img {
            width: 50px;
            height: 50px;
            margin-bottom: 0.5rem;
        }

        span {
            font-size: 0.8rem;
        }
    }
}

@media (max-width: 575.98px) {
    .pubsub-logos-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }

    .pubsub-logo-item {
        img {
            width: 45px;
            height: 45px;
        }

        span {
            font-size: 0.75rem;
        }
    }
}

// Homepage code blocks styling
.homepage-code-block {
    .frame {
        border-radius: 12px !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06) !important;
        border: 1px solid var(--bs-border-color) !important;
        overflow: hidden;
        overflow-x: auto; // Allow horizontal scrolling when needed

        // Ensure child elements respect the border radius
        * {
            border-radius: inherit !important;
        }

        // Target the actual code container
        pre, code, .expressive-code-block {
            border-radius: 12px !important;
            border: none !important;
        }

        // Target any highlighted code elements
        .highlight {
            border-radius: 12px !important;
            border: none !important;
        }
    }
}

[data-bs-theme="light"] {
    .homepage-code-block .frame pre,
    .homepage-code-block .frame code,
    .homepage-code-block .frame .expressive-code-block {
        background: white !important;
    }
}

// Responsive design for homepage code blocks
@media (max-width: 767.98px) {
    .homepage-code-block {
      margin-left: -45px;
      margin-right: -45px;
    }
}

// Dark theme support for homepage code blocks
[data-bs-theme="dark"] .homepage-code-block {
    .frame {
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2) !important;
        border: 1px solid var(--bs-border-color) !important;
    }
}

// Modern gradient text styles
.gradient-text-1 {
    background: linear-gradient(to right, #6366f1, #8b5cf6, #3b82f6);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

// Homepage gradient section backgrounds
.homepage-section-gradient {
    position: relative;

    &::before {
        content: '';
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 100vw;
        height: 100%;
        border-top: 1px solid rgba(0, 0, 0, 0.08);
        pointer-events: none;
        z-index: -1;
    }
}

// Single gradient class for all sections
.homepage-section-gradient {
    &::before {
        background: linear-gradient(180deg, 
            rgba(79, 70, 229, 0.03) 0%, 
            transparent 100%
        );
    }
}

// Dark theme adjustments for gradients
[data-bs-theme="dark"] {
    .homepage-section-gradient::before {
        background: linear-gradient(180deg, 
            rgba(79, 70, 229, 0.06) 0%, 
            transparent 100%
        );
        border-top: 1px solid rgba(255, 255, 255, 0.08);
    }
}

[data-bs-theme="dark"], [data-bs-theme="light"] {
  /* Background */ .bg { color: #c9c9c9; background-color: #282c34; }
  /* PreWrapper */ .chroma { color: #c9c9c9; background-color: #282c34; }
  /* Other */ .chroma .x {  }
  /* Error */ .chroma .err { color: #cf5967 }
  /* CodeLine */ .chroma .cl {  }
  /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
  /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
  /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
  /* LineHighlight */ .chroma .hl { background-color: #3d4148 }
  /* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
  /* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f }
  /* Line */ .chroma .line { display: flex; }
  /* Keyword */ .chroma .k { color: #7fbaf5 }
  /* KeywordConstant */ .chroma .kc { color: #cf5967; }
  /* KeywordDeclaration */ .chroma .kd { color: #7fbaf5 }
  /* KeywordNamespace */ .chroma .kn { color: #bc74c4 }
  /* KeywordPseudo */ .chroma .kp { color: #bc74c4 }
  /* KeywordReserved */ .chroma .kr { color: #7fbaf5 }
  /* KeywordType */ .chroma .kt { color: #57c7ff; font-weight: bold }
  /* Name */ .chroma .n {  }
  /* NameAttribute */ .chroma .na { color: #bc74c4 }
  /* NameBuiltin */ .chroma .nb { color: #7fbaf5 }
  /* NameBuiltinPseudo */ .chroma .bp { color: #7fbaf5 }
  /* NameClass */ .chroma .nc { color: #ecbe7b }
  /* NameConstant */ .chroma .no { color: #ecbe7b }
  /* NameDecorator */ .chroma .nd { color: #ecbe7b }
  /* NameEntity */ .chroma .ni {  }
  /* NameException */ .chroma .ne { color: #cf5967 }
  /* NameFunction */ .chroma .nf { color: #57c7ff }
  /* NameFunctionMagic */ .chroma .fm {  }
  /* NameLabel */ .chroma .nl { color: #cf5967 }
  /* NameNamespace */ .chroma .nn {  }
  /* NameOther */ .chroma .nx {  }
  /* NameProperty */ .chroma .py {  }
  /* NameTag */ .chroma .nt { color: #bc74c4 }
  /* NameVariable */ .chroma .nv { color: #bc74c4; font-style: italic }
  /* NameVariableClass */ .chroma .vc { color: #57c7ff; font-weight: bold }
  /* NameVariableGlobal */ .chroma .vg { color: #ecbe7b }
  /* NameVariableInstance */ .chroma .vi { color: #57c7ff }
  /* NameVariableMagic */ .chroma .vm {  }
  /* Literal */ .chroma .l {  }
  /* LiteralDate */ .chroma .ld { color: #57c7ff }
  /* LiteralString */ .chroma .s { color: #82cc6a }
  /* LiteralStringAffix */ .chroma .sa { color: #82cc6a }
  /* LiteralStringBacktick */ .chroma .sb { color: #57c7ff }
  /* LiteralStringChar */ .chroma .sc { color: #57c7ff }
  /* LiteralStringDelimiter */ .chroma .dl { color: #82cc6a }
  /* LiteralStringDoc */ .chroma .sd { color: #82cc6a }
  /* LiteralStringDouble */ .chroma .s2 { color: #82cc6a }
  /* LiteralStringEscape */ .chroma .se { color: #56b6c2 }
  /* LiteralStringHeredoc */ .chroma .sh { color: #56b6c2 }
  /* LiteralStringInterpol */ .chroma .si { color: #82cc6a }
  /* LiteralStringOther */ .chroma .sx { color: #82cc6a }
  /* LiteralStringRegex */ .chroma .sr { color: #57c7ff }
  /* LiteralStringSingle */ .chroma .s1 { color: #82cc6a }
  /* LiteralStringSymbol */ .chroma .ss { color: #82cc6a }
  /* LiteralNumber */ .chroma .m { color: #56b6c2 }
  /* LiteralNumberBin */ .chroma .mb { color: #57c7ff }
  /* LiteralNumberFloat */ .chroma .mf { color: #56b6c2 }
  /* LiteralNumberHex */ .chroma .mh { color: #57c7ff }
  /* LiteralNumberInteger */ .chroma .mi { color: #56b6c2 }
  /* LiteralNumberIntegerLong */ .chroma .il { color: #56b6c2 }
  /* LiteralNumberOct */ .chroma .mo { color: #57c7ff }
  /* Operator */ .chroma .o { color: #bc74c4 }
  /* OperatorWord */ .chroma .ow { color: #bc74c4 }
  /* Punctuation */ .chroma .p { color: #56b6c2 }
  /* Comment */ .chroma .c { color: #3e4460 }
  /* CommentHashbang */ .chroma .ch { color: #3e4460; font-style: italic }
  /* CommentMultiline */ .chroma .cm { color: #3e4460 }
  /* CommentSingle */ .chroma .c1 { color: #3e4460 }
  /* CommentSpecial */ .chroma .cs { color: #bc74c4; font-style: italic }
  /* CommentPreproc */ .chroma .cp { color: #7fbaf5 }
  /* CommentPreprocFile */ .chroma .cpf { color: #7fbaf5 }
  /* Generic */ .chroma .g {  }
  /* GenericDeleted */ .chroma .gd { color: #cf5967 }
  /* GenericEmph */ .chroma .ge { text-decoration: underline }
  /* GenericError */ .chroma .gr { color: #cf5967; font-weight: bold }
  /* GenericHeading */ .chroma .gh { color: #ecbe7b; font-weight: bold }
  /* GenericInserted */ .chroma .gi { color: #ecbe7b }
  /* GenericOutput */ .chroma .go { color: #43454f }
  /* GenericPrompt */ .chroma .gp {  }
  /* GenericStrong */ .chroma .gs { color: #cf5967; font-weight: bold }
  /* GenericSubheading */ .chroma .gu { color: #cf5967; font-style: italic }
  /* GenericTraceback */ .chroma .gt {  }
  /* GenericUnderline */ .chroma .gl { text-decoration: underline }
  /* TextWhitespace */ .chroma .w {  }

}
